Constant-Time Callees with Variable-Time Callers
نویسندگان
چکیده
Side-channel attacks are a serious threat to securitycritical software. To mitigate remote timing and cachetiming attacks, many ubiquitous cryptography software libraries feature constant-time implementations of cryptographic primitives. In this work, we disclose a vulnerability in OpenSSL 1.0.1u that recovers ECDSA private keys for the standardized elliptic curve P-256 despite the library featuring both constant-time curve operations and modular inversion with microarchitecture attack mitigations. Exploiting this defect, we target the errant modular inversion code path with a cache-timing and improved performance degradation attack, recovering the inversion state sequence. We propose a new approach of extracting a variable number of nonce bits from these sequences, and improve upon the best theoretical result to recover private keys in a lattice attack with as few as 50 signatures and corresponding traces. As far as we are aware, this is the first timing attack against OpenSSL ECDSA that does not target scalar multiplication, the first side-channel attack on cryptosystems leveraging P-256 constant-time scalar multiplication and furthermore, we extend our attack to TLS and SSH protocols, both linked to OpenSSL for P-256 ECDSA signing.
منابع مشابه
Init-time Shadow Width Computation through Compile-time Conventions (report Emp Cri A-285)
In compiling stencil-like computations for distributed memory machines a standard technique is to allocate shadow edges to store remote elements from neighbor processors 1]. The eecient management of these edges by HPF compilers at subroutine boundaries is not obvious because the callers do not know the callees' requirements, thus it was proposed to allow their explicit declaration 2]. We prese...
متن کاملEvents Can Make Sense
Tame is a new event-based system for managing concurrency in network applications. Code written with Tame abstractions does not suffer from the “stackripping” problem associated with other event libraries. Like threaded code, tamed code uses standard control flow, automatically-managed local variables, and modular interfaces between callers and callees. Tame’s implementation consists of C++ lib...
متن کاملHistory-Based Access Control and Secure Information Flow
This paper addresses the problem of static checking of programs to ensure that they satisfy confidentiality policies in the presence of dynamic access control in the form of Abadi and Fournet’s historybased access control mechanism. The Java virtual machine’s permissionbased stack inspection mechanism provides dynamic access control and is useful in protecting trusted callees from untrusted cal...
متن کاملAn Efficient and Secure Credit Card-based Billing Scheme for Telephone Services
MasterCard and VisaCard use credit cards to support a number of services, such as Masterphone or Visaphone, which allow cardholders to make phone calls from any telephone. However, these services take little or no security precautions. Although SET protocol has defined a secure payment method for card transactions over open networks, it cannot fit in telephone systems. In this paper, we propose...
متن کاملExperimental and Mathematical Investigation of Time-Dependence of Contaminant Dispersivity in Soil
Laboratory and field experiments have shown that dispersivity is one of the key parameters in contaminant transport in porous media and varies with elapsed time. This time-dependence can be shown using a time-variable dispersivity function. The advantage of this function as opposed to constant dispersivity is that it has at least two coefficients that increase the accuracy of the dispersivity p...
متن کامل